////////////////////////////////////////////////////////////////////////////////
//
//  FLEX USER GROUP HOKURIKU
//  Copyright 2009 Flex User Group Hokuriku
//  All Rights Reserved.
// 
//  NOTICE: Flex User Group Hokuriku permits you to use, 
//  modify, and distribute this file 
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package net.fxug.hokuriku.chocolat.utils
{
    import flash.errors.IllegalOperationError;

    import net.fxug.hokuriku.chocolat.events.VoteEvent;
    import net.fxug.hokuriku.chocolat.view.NotificationManager;

	/**
	 * イベント関連のユーティリティクラス 
	 * @author morizou
	 * 
	 */	
    public class EventUtil
    {
		/** 
		 * デフォルトコンストラクタは使用禁止 
         * @throws IllegalOperationError インスタンス生成が行われた場合にthrowされます。
		 */
		[Deprecated("このクラスのインスタンス化は許可されていません")]
        public function EventUtil()
        {
            throw new IllegalOperationError("このクラスのインスタンス化は禁止されています。");
        }

		/**
		 * VoteEventをNotifyManagerTypeに変換する 
		 * @param from net.fxug.hokuriku.chocolat.events.VoteEvent
		 * @return net.fxug.hokuriku.chocolat.view.NotificationManager
		 */		
        public static function fromVoteEventToNotifyManagerType(from:VoteEvent):String
        {
            if (from == null || from.type == null)
            {
                throw new ArgumentError("引数の値が存在しないため処理できません。");
            }
            if (from.type == VoteEvent.GOOD_EVENT)
            {
                return NotificationManager.NOTIFY_GOOD;
            }
            else if (from.type == VoteEvent.BAD_EVENT)
            {
                return NotificationManager.NOTIFY_BAD;
            }
            throw new IllegalOperationError("予期せぬ値が渡されました。");
        }
    }
}